//
// import 'package:flutter/cupertino.dart';
// import 'package:flutter/material.dart';
// import 'package:get/get.dart';
// import 'package:get/get_state_manager/src/simple/get_controllers.dart';
// import 'package:google_maps_flutter/google_maps_flutter.dart';
// import 'package:syn_4s/core/extension/int_extension.dart';
// import 'package:syn_4s/core/viewmodel/main_view_model.dart';
//
// import '../../ui/widgets/google_map_center_dialog.dart';
// import '../../ui/widgets/google_map_lock_dialog.dart';
// import '../../ui/widgets/google_map_monitoring_dialog.dart';
// import '../../ui/widgets/google_map_watch_dialog.dart';
// import '../constants/constants.dart';
// import '../model/map_all_device_model.dart';
// import '../services/config.dart';
// import '../services/google_map_request.dart';
// import '../utils/dialog_utils.dart';
// import '../utils/location_per_utils.dart';
// import '../utils/toast_utils.dart';
//
// class GoogleMapViewModel extends GetxController {
//
//
//   RxDouble latitude = (0.0).obs;
//   RxDouble longitude = (0.0).obs;
//
//   var mapType = true.obs;
//
//   Set<Marker> marker = <Marker>{}.obs;
//   List<MapAllDeviceModel> deviceList = <MapAllDeviceModel>[].obs;
//   // MapType _mapType = MapType.hybrid;
//   late GoogleMapController mapController;
//   // BuildContext context;
//   //
//   // GoogleMapViewModel(this.context);
//
//   initData(){
//
//   }
//
//   void getAllDevice(BuildContext context) {
//     // var codes = mainViewModel.deviceTagCodes;
//     GoogleMapRequest.getAllDevice(codes.toString()).then((result) {
//       // setState(() {
//       if (result.status != HttpConfig.success) {
//         ToastUtils.showToast(result.message ?? "");
//         return;
//       }
//       latitude.value = result!.data![0].lat!;
//       longitude.value = result!.data![0].lng!;
//       deviceList = result!.data!;
//       setCentralPositioning();
//       marker = deviceList.map((location) => createMarkers(location, context)).toSet();
//       // });
//     });
//   }
//
//   ///设置地图中心定位
//   void setCentralPositioning(){
//     mapController.animateCamera(CameraUpdate.newCameraPosition(
//       CameraPosition(target: LatLng(latitude as double, longitude as double), zoom: 15.0),
//     ));
//   }
//
//   ///创建标记点
//   Marker createMarkers(MapAllDeviceModel device, BuildContext context) {
//     String icon = "assets/images/${device!.icon}.png";
//     return Marker(
//         markerId: MarkerId("${device.id}"),
//         position: LatLng(device.lat ?? 0, device.lng ?? 0),
//         icon: AssetMapBitmap(icon, width: 24.px),
//         // infoWindow: InfoWindow(title: device.deviceName),
//         onTap: () {
//           DialogUtils.loading(context);
//           getDeviceDetails(device!.tag!, device!.id!, context);
//         });
//   }
//
//   // void getLocation(BuildContext context) {
//   //   determinePosition(context).then((position) {
//   //     // setState(() {
//   //     //   latitude = position.latitude;
//   //     //   longitude = position.longitude;
//   //     //   setCentralPositioning();
//   //     // });
//   //   }).catchError((error) {
//   //     ToastUtils.showNetError(context);
//   //     print(error.toString());
//   //   });
//   // }
//
//   MapType changeMapType(){
//     return mapType.value == true ? MapType.hybrid : MapType.terrain;
//   }
//
//   void getDeviceDetails(String tagCode, String id, BuildContext context){
//     GoogleMapRequest.getDeviceDetails(tagCode, id).then((result){
//       DialogUtils.closeDialog(context);
//       if (result.status != HttpConfig.success) {
//         ToastUtils.showToast(result.message ?? "");
//         return;
//       }
//       print("${result.data?.tag}");
//       if(lockTag == result?.data?.tag){
//         showLockDialog(result!.data!, context);
//       } else if(watchTag == result?.data?.tag){
//         showWatchDialog(result!.data!, context);
//       } else {
//         showMonitoringDialog(result!.data!, context);
//       }
//     }).catchError((error){
//       ToastUtils.showNetError(context);
//       DialogUtils.closeDialog(context);
//       print(error.toString());
//     });
//   }
//
//   ///电子锁详情弹框
//   void showLockDialog(MapAllDeviceModel data, BuildContext context) {
//     showModalBottomSheet(
//       context: context,
//       builder: (context) => GoogleMapLockDialog("SMART LOCK", data),
//     );
//   }
//
//   ///360检测设备详情弹框
//   void showMonitoringDialog(MapAllDeviceModel data, BuildContext context) {
//     showModalBottomSheet(
//       context: context,
//       builder: (context) => GoogleMapMonitoringDialog("360 MONITORING PLANT", data),
//     );
//   }
//
//   ///电子手表详情弹框
//   void showWatchDialog(MapAllDeviceModel data, BuildContext context) {
//     showModalBottomSheet(
//       context: context,
//       builder: (context) => GoogleMapWatchDialog("SMART WATCH", data),
//     );
//   }
//
//   ///警报
//   void showAlertDialog(BuildContext context) {
//     showDialog(
//       context: context,
//       barrierDismissible: false,
//       builder: (context) => GoogleMapCenterDialog("DRITICAL ALERTS"),
//     );
//   }
//
//   @override
//   void dispose() {
//     if(mapController != null){
//       mapController.dispose();
//     }
//     super.dispose();
//   }
// }